	var address="localhost";
	var num = 1;
	var num2=1;
	var appList=[];
	var allVersion=[];
	var branchValue="";
	var version="0.0.1";
	function appendConfig() {
		var configHtml="<table id=\""+num+"\" class=tab style=\"margin-top:10px;\">\r\n"+
						"<tr>\r\n"+
							"<th>AppName</th>\r\n"+
							"<th>Operation</th>\r\n"+
							"<th>Properties</th>\r\n"+
						"</tr>\r\n"+
						"<tr>\r\n"+
							"<td><select id=\"appName"+num+"\" onchange=\"getConfigName("+num+")\"><option>--请选择微服务--</option></select></td>\r\n"+
							"<td><select><option>ADD</option><option>UPDATE_KEYS</option><option>UPDATE_VALUES</option></select></td>\r\n"+
							"<td><select id=\"appConfigName"+num+"\" onchange=\"getConfigValue("+num+")\"><option>--请选择配置文件名称--</option></select></td>\r\n"+
						"</tr>\r\n"+
						"<tr>\r\n"+
								"<td colspan=\"3\" style=\"border:1px solid #BDBDBD\"><a id=\"configValueDispaly"+num+"\" onclick=\"unfold("+num+")\" style=\"display:none;float:right\">点击展开</a><span id=\"configValue"+num+"\" style=\"white-space:pre-wrap\"></span></td>\r\n"+
								"</tr>\r\n"+
						"<tr>\r\n"+
							"<th>Key</th>\r\n"+
							"<th>Value</th>\r\n"+
							"<th></th>\r\n"+
						"</tr>\r\n"+
						"<tr>\r\n"+
								"<td colspan=\"2\"><textarea placeholder=\"请输入备注信息\" style=\"height:35px;width:100%;resize:vertical;\"></textarea></td>\r\n"+
								"<td></td>\r\n"+
						"</tr>\r\n"+
						"<tr>\r\n"+
							"<td><input type=\"text\"></td>\r\n"+
							"<td><input type=\"text\"></td>\r\n"+
							"<td><button onclick=\"addConfigValue("+num+")\" style=\"background-color:#4F94CD;color:white\"><span class=\"glyphicon glyphicon-plus\">添加配置内容</button></td>\r\n"+
						"</tr>\r\n"+
					"</table>\r\n";
		$("#div2").append(configHtml);
		$("#appName"+num).append("<option id=\"writeAppId\">--请手动输入配置文件名称--</option>");
		for(var i=0;i<appList.length;i++){
				$("#appName"+num).append("<option id="+appList[i].app_id+">"+appList[i].name+"</option>");
		}	
		num++;
		
	}
	
	function addConfigValue(num){
		var configValueHtml="<tr id=\"c"+num2+"\">\r\n"+
							"<td colspan=\"2\"><textarea placeholder=\"请输入备注信息\" style=\"height:35px;width:100%;resize:vertical;\"></textarea></td>\r\n"+
							"<td></td>\r\n"+
							"</tr>\r\n"+
							"<tr id=\"v"+num2+"\">\r\n"+
							"<td><input type=\"text\"></td>\r\n"+
							"<td><input type=\"text\"></td>\r\n"+
							"<td><button onclick=\"deleteConfigValue("+num2+")\" style=\"background-color:#4F94CD;color:white\"><span class=\"glyphicon glyphicon-minus\">删除配置内容</button></td>\r\n"+
						"</tr>";
		$("#"+num).append(configValueHtml);
		num2++;
	}
	
	function deleteConfigValue(num2){
		$("#c"+num2).remove();
		$("#v"+num2).remove();
	}
	
	function deleteConfig(){
		if (num!=1){
			$("#"+(num-1)).remove();
			num--;
		}	
	}
	
	$(document).ready(function(){
		$.get('http://gitlab.idanlu.com/api/v3/projects/110/repository/branches?private_token=s6ds3VWzz6PAsBq_t9U4',function(data){
			for(var i=0;i<data.length;i++){
				$("#branchName").append("<option>"+data[i].name+"</option>");
				$("#branchName2").append("<option>"+data[i].name+"</option>");
				$("#branchName3").append("<option>"+data[i].name+"</option>");
			}		
		}		
		);
		$.ajax({
			url: "http://"+address+":3001/getApp/getAppList",
			type: "GET",
			dataType: 'JSON',
			success: function(data){
				appList=data;
				$("#appName0").append("<option id=\"writeAppId\">--请手动输入配置文件名称--</option>");
				for(var i=0;i<data.length;i++){
				$("#appName0").append("<option id="+data[i].app_id+">"+data[i].name+"</option>");
				}	
			}
		});
		$.ajax({
			url: "http://"+address+":3001/getApp/getAllVersion",
			type: "GET",
			dataType: 'JSON',
			success: function(data){
				allVersion=data;
			}
		});
		
	});
	//判断版本是否存在于matrix中
	function verifyVersion(){
		branchValue=document.getElementById("branchName").value;
		for(var i=0;i<allVersion.length;i++){
			if(branchValue==allVersion[i]){
				version=branchValue;
				break;
			}
			else{
				version="0.0.1";
			}
		}
	}
	
	function addAllConfigs(){
		var data=getData();
		var bugNum=document.getElementById("bugnum").value;
		
		if (data!=0&&branchValue!="--请选择分支名称--"&&bugNum!=""){
			var postData={
			"file_path": "MatrixConfig"+getNowTime(),
			"branch_name": branchValue,
			"commit_message": "bug#"+bugNum,
			"content": data
			}
			$.ajax({
			type:"POST",
			url: "http://gitlab.idanlu.com/api/v3/projects/110/repository/files?private_token=s6ds3VWzz6PAsBq_t9U4",
			data: postData,
			beforeSend: function () {  
				// 禁用按钮防止重复提交  
				$("#subBtn").attr({ disabled: "disabled" });  
				layer.load(0, {shade: [0.4,'#E8E8E8',true] });
			}, 
			success: function(data){
				var fileName=data.file_path;
				var postData2={
					"file_name":data.file_path,
					"branch_name":branchValue,
				}
				$.ajax({
					type:"POST",
					url:"http://"+address+":3001/getApp/createConfigFile",
					data:postData2,
					success:function(data2){
						if(data2.success==0){
							layer.alert("提交成功，配置文件名："+fileName, {
									closeBtn:0,
									icon: 6,
									skin: 'layer-ext-moon'
							},function(){
								window.location.reload();
							});
							
						}
					}
				});
				
				//window.location.reload();
			},
			complete: function () { 
				layer.closeAll('loading');
				$("#subBtn").removeAttr("disabled");
			},  
			error: function (data) {  
				console.info("error: " + data.responseText);
				layer.alert('提交失败！请检查Bug号是否填写正确！', {
									icon: 5,
									skin: 'layer-ext-moon'
						});
			}  
			});
			
			}
		else{
			if(branchValue=="--请选择分支名称--"){
				layer.alert('分支名称不能为空，请选择分支名称', {
									icon: 5,
									skin: 'layer-ext-moon'
						});
			}
			if(bugNum==""){
				layer.alert('bug号不能为空', {
									icon: 5,
									skin: 'layer-ext-moon'
						});
			}
		}
	}
		
	
	
	function getData(){
		var configProperties=[];
		for (var configNum=0;configNum<num;configNum++){
			//获取备注信息
			var textareas=document.getElementById(configNum).getElementsByTagName("textarea");
			
			var inputs=document.getElementById(configNum).getElementsByTagName("input");
			var selects=document.getElementById(configNum).getElementsByTagName("select");
			var selectValue=[];
			var textareasValue=[];
			var inputsValue=[];
			//获取微服务、操作类型、配置文件名称
			for(var m=0;m<selects.length;m++){
				selectValue.push(selects[m].value);
			}
			
			for (var i=0;i<inputs.length;i++){
				inputsValue.push(inputs[i].value);
			//alert(inputsValue);
			}
			for (var i=0;i<textareas.length;i++){
				textareasValue.push(textareas[i].value);
				//alert(textareasValue);
			}
			
				
			var keyValue=[];
			var j=0;
			var k=0;
			for (var i=0;i<(inputs.length)/2;i++){
				//校验value值中url的正确性
				if (inputsValue[j+1].indexOf(".idanlu.com")!=-1){
					var indexNum=inputsValue[j+1].indexOf(".idanlu.com");
					if ((indexNum-4)<0){
						layer.alert('输入URL错误！', {
									icon: 5,
									skin: 'layer-ext-moon'
						});
						$(inputs[j+1]).css("border","2px solid #FF0000");
						return 0;
					}
					else{
						if (inputsValue[j+1].substring((indexNum-4),indexNum)!=".env"){
							layer.alert('输入URL错误，请用环境参数！', {
									icon: 5,
									skin: 'layer-ext-moon'
							});
							$(inputs[j+1]).css("border","2px solid #FF0000");
							return 0;
						}
					}
					
				}
				//检验value值中jdbc的正确性
				if (inputsValue[j+1].indexOf("jdbc:mysql://")!=-1){
					var indexNum=inputsValue[j+1].indexOf("jdbc:mysql://");
					if (inputsValue[j+1].substr((indexNum+13),11)!="env_db:port"){
						layer.alert('输入jdbc地址错误,请用环境参数！', {
									icon: 5,
									skin: 'layer-ext-moon'
						});
						$(inputs[j+1]).css("border","2px solid #FF0000");
						return 0;
					}		
				}
				//检验value值中是否含有ip地址
				var patt1=/(2[0-4]\d|25[0-5]|[01]\d\d|\d\d|\d)\.(2[0-4]\d|25[0-5]|[01]\d\d|\d\d|\d)\.(2[0-4]\d|25[0-5]|[01]\d\d|\d\d|\d)\.(2[0-4]\d|25[0-5]|[01]\d\d|\d\d|\d)/;  	
				if (patt1.test(inputsValue[j+1])==true){
					console.log(patt1.exec(inputsValue[j+1]));
					layer.alert('不允许输入ip地址！', {
								icon: 5,
								skin: 'layer-ext-moon'
					});
					$(inputs[j+1]).css("border","2px solid #FF0000");
					return 0;
							
				} 
				//判断备注是否为空
				if(textareasValue[k]==""){
					keyValue+=(inputsValue[j]+"="+inputsValue[j+1]+"\n");
				}
				else{
					keyValue+=("#"+textareasValue[k]+"\n"+inputsValue[j]+"="+inputsValue[j+1]+"\n");
				}
				k=k+1;
				j=j+2;
			}
			configProperties+=(selectValue[0]+"::"+selectValue[1]+"::"+selectValue[2]+"\n"+
									"BEGIN\n"+
									keyValue+
									"END\n");
		}
		return configProperties;
	}
	
	function getNowTime(){
		var myDate = new Date();
		//获取当前年
		var year=myDate.getFullYear();
		//获取当前月
		var month=myDate.getMonth()+1;
		//获取当前日
		var date=myDate.getDate(); 
		var h=myDate.getHours();       //获取当前小时数(0-23)
		var m=myDate.getMinutes();     //获取当前分钟数(0-59)
		var s=myDate.getSeconds(); 
		var now=year+"-"+p(month)+"-"+p(date)+"-"+p(h)+"-"+p(m)+"-"+p(s);
		return now;
	}
	
	function p(s) {
		return s < 10 ? ('0' + s): s;
	}
	
	
	function clearAll(){
		$("#div2 input").val("");
	}	
	
	
	//获取微服务列表
	/*function getApp(){
		var branchValue=document.getElementById("branchName").value;
		$.ajax({
			url: "http://localhost:3001/getApp/getAppList",
			type: "GET",
			dataType: 'JSON',
			success: function(data){
				for(var i=0;i<data.length;i++){
				$("#appName").append("<option>"+data[i].name+"</option>");
				}	
			}
		});
	}*/
	
	//获取配置文件名称
	function getConfigName(num){
		var appId=$("#appName"+num).find(" option:selected").attr("id");
		$("#appConfigName"+num).find("option").remove();
		if(appId=='writeAppId'){
			layer.prompt(function(val, index){
			layer.msg('您输入的微服务名称'+val);
			layer.close(index);
			$("#appName"+num).append("<option>"+val+"</option>");
			$("#appName"+num).val(val);
			});
			$("#appConfigName"+num).append("<option>--请选择配置文件名称</option>");
			$("#appConfigName"+num).append("<option id=\"writeId\">--请手动输入配置文件名称--</option>");
		}
		else{
			$.ajax({
			url: "http://"+address+":3001/getApp/getConfigList?version="+version+"&appId="+appId,
			type: "GET",
			dataType: 'JSON',
			success: function(data){
				$("#appConfigName"+num).append("<option>--请选择配置文件名称</option>");
				$("#appConfigName"+num).append("<option id=\"writeId\">--请手动输入配置文件名称--</option>");
				for(var i=0;i<data.length;i++){
					$("#appConfigName"+num).append("<option id="+data[i].config_id+">"+data[i].name+"</option>");
				}	
			}
		});
		}
	}
	
//unicode为1个接收数据，串口收到的字符编码放在该数组中
function reconvert(str){
    str = str.replace(/(\\u)(\w{1,4})/gi,function($0){
        return (String.fromCharCode(parseInt((escape($0).replace(/(%5Cu)(\w{1,4})/g,"$2")),16)));
    });
    str = str.replace(/(&#x)(\w{1,4});/gi,function($0){
        return String.fromCharCode(parseInt(escape($0).replace(/(%26%23x)(\w{1,4})(%3B)/g,"$2"),16));
    });
    str = str.replace(/(&#)(\d{1,6});/gi,function($0){
        return String.fromCharCode(parseInt(escape($0).replace(/(%26%23)(\d{1,6})(%3B)/g,"$2")));
    });

    return str;
}
	
	//获取配置项具体的值
	function getConfigValue(num){
		var appId=$("#appName"+num).find(" option:selected").attr("id");
		var configId=$("#appConfigName"+num).find(" option:selected").attr("id");
		if(configId=='writeId'){
			layer.prompt(function(val, index){
			layer.msg('您输入的配置文件名称'+val);
			layer.close(index);
			$("#appConfigName"+num).append("<option>"+val+"</option>");
			$("#appConfigName"+num).val(val);
			$("#configValue"+num).html("");
			});
		}
		else if(configId==undefined){
			$("#configValue"+num).html("");
		}
		else{
			$.ajax({
			url: "http://"+address+":3001/getApp/getConfigValue?version="+version+"&appId="+appId+"&configId="+configId,
			type: "GET",
			dataType: 'JSON',
			success: function(data){
				$("#configValue"+num).show();
				$("#configValue"+num).html(reconvert(data[0].value.replace(/\\n/gm,"<br>")));
				$("#configValue"+num).append("<a onclick='packUp("+num+")' style='float:right'>点击收起</a>");
			}  
		});
		}
		
	}
	
	function packUp(num){
		$("#configValue"+num).hide();
		$("#configValueDispaly"+num).show();
	}
	
	function unfold(num){
		$("#configValue"+num).show();
		$("#configValueDispaly"+num).hide();
	}
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	